From 6b3d979196cf89542e7ba42839e6e7830fb8303b Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Wed, 1 Nov 2017 15:33:02 +0100 Subject: [PATCH] gskgl: Deal with being rerealized --- gsk/gskglrenderer.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gsk/gskglrenderer.c b/gsk/gskglrenderer.c index 979e72f3b0..b899f2fd3b 100644 --- a/gsk/gskglrenderer.c +++ b/gsk/gskglrenderer.c @@ -180,7 +180,6 @@ gsk_gl_renderer_dispose (GObject *gobject) { GskGLRenderer *self = GSK_GL_RENDERER (gobject); - g_clear_object (&self->gl_context); g_clear_pointer (&self->render_items, g_array_unref); G_OBJECT_CLASS (gsk_gl_renderer_parent_class)->dispose (gobject); @@ -412,7 +411,7 @@ gsk_gl_renderer_unrealize (GskRenderer *renderer) /* We don't need to iterate to destroy the associated GL resources, * as they will be dropped when we finalize the GskGLDriver */ - g_clear_pointer (&self->render_items, g_array_unref); + g_array_set_size (self->render_items, 0); gsk_gl_renderer_destroy_buffers (self); gsk_gl_renderer_destroy_programs (self); @@ -422,6 +421,8 @@ gsk_gl_renderer_unrealize (GskRenderer *renderer) if (self->gl_context == gdk_gl_context_get_current ()) gdk_gl_context_clear_current (); + + g_clear_object (&self->gl_context); } static GdkDrawingContext * -- 2.30.2